module Data where

data DocumentValueGen name id =
    ComplexValue (Map name (FieldValueGen name id))
    | BasicValue BasicValue

data BasicValue =
    BVBool Bool
    | BVInt Integer
    | BVString String
    | BVDouble Double
 
data FieldValueGen name id = Value (Set DocumentValueGen name id) | Reference (Set id)
